Random numbers are useful in many different computing spheres. For example, most security protocols, which are employed in many business and commercial contexts, rely on random numbers. Unfortunately, acquiring truly random numbers using the mathematical logic and consequential predictability embodied in the circuitry of today's computing devices is a difficult prospect. Hence, pseudorandom numbers, which computing devices are capable of producing, are typically used in the real world.
Pseudorandom numbers tend to appear random, at least to a resource-constrained analysis. Pseudorandom number generation typically involves using an input seed of a first bit length to produce a pseudorandom number of a second bit length. The input seed is generally considered truly random. The second bit length of the pseudorandom number output is longer than the first bit length of the seed input due to some mathematical algorithm that is applied to the input seed. The effect is the production of a pseudorandom number sequence that may be employed with a security protocol or in some other context.